# _*_ coding: UTF-8 _*_
# @Time     : 2021/10/20 15:05
# @Author   : yangshuaishuai
# @Site     : http://www.hzdledu.cn/
# @File     : c3s3变量.py
# @Software : PyCharm


# 什么是变量
# 1.实质是指向数据的内存地址：2.简单理解为存放数据的容器，比如杯子或柜子

# 不要用内置函数或模块做变量名
# 变量的定义
# a = 10
#
# # 变量数据类型可变
# a = 10
# print(type(a))
# a = 'aaaaa'
# print(type(a)) # type()可以获取对象的数据类型
#
# # 对变量重新赋值，是改变变量指向的内存地址
# a = 10
# print(id(a))
# a = 100
# print(id(a))
#
# # 将变量赋值给变量，将内存地址给另一个变量
# a = 10
# b = a
# print(id(a))
# print(id(b))

a = 10
b = a
a = 100
print(id(a))
print(id(b))
print(id(a))

# 数据类型
# 1.int整数 2.float浮点数 3.bool布尔值 4.str字符串
a = 10
print(type(a))

b = 1.0
print(type(b))

c = True
print(type(c))

d = '汇智动力'
print(type(d))

# str1 = "he said:"hello!""""#字符串的符号就近配对
str1 = 'He said:"hello!"'

# 转义字符
print('\\')
print('\'')
print('\"')
print('\n')
print('\t')
print(r'c\:temp')  # r禁止字符串转义

# 数据类型转换
# int():针对字符串，不能转换含有非数字字符的字符串 转整数类型
a = 1.1
b = True
c = '1111'
d = 'abcd'
print(int(a))  # 1
print(int(b))  # 1
print(int(c))  # 1111
print(int(d))  # 报错
# float() 转小数位类型
a = 1.1
b = True
c = '1111'
d = 'abcd'
print(float(a))  # 1。0
print(float(b))  # 1。0
print(float(c))  # 1111。0
print(float(d))  # 报错
# bool():非零非空都是True 转布尔类型
a = 0
b = 1.1
c = 'abcd'
d = ''
print(bool(a))  # False
print(bool(b))  # True
print(bool(c))  # True
print(bool(d))  # False

# str(),转字符串
a = 0
b = 1.1
c = True
print(str(a))  # '0'
print(str(b))  # '1.1'
print(str(c))  # 'True'

# 格式化字符串
# 1.占位符格式化字符串
name = '吴京'
age = 43
print('我的名字是：%s,我的年龄是:%d岁' % (name, age))
# 指定宽度
print('我的名字是：%s,我的年龄是:%10d岁' % (name, age))  # 占位10字符输出
# 指定宽度。高位补零
print('我的名字是：%s,我的年龄是:%010d岁' % (name, age))
# 指定小数位位数
pi = 3.1415926
print('π的值是：%10f' % (pi))
print('π的值是：%10.3f' % (pi))  # 精确到小数位3位，小数点占一位
print('π的值是：%-10f' % (pi))  # 左对齐
# 2.f''格式化字符串
name = '吴京'
age = 43
print(f'我的名字是：{name},我的年龄是:{age}岁')
# 指定宽度
print(f'我的名字是：{name},我的年龄是:{age:10}岁')
# 指定小数位数
pi = 3.1415926
print(f'π的值是：{pi:10.8f}')
# 补零
print(f'π的值是：{pi:010f}')
# 左对齐
print(f'π的值是：{pi:<010f}')
# s字符串 d整数 f小数位 x十六进制
